home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 March / CMCD0305.ISO / Software / Shareware / Utilitare / emu / Emu8086_Setup_307c.exe / {app} / Samples / calc.asm < prev    next >
Assembly Source File  |  2002-11-28  |  1KB  |  87 lines

  1. ; This sample gets two numbers
  2. ; from the user, calculates the
  3. ; sum of these numbers,
  4. ; and prints it out.
  5.  
  6. #make_COM#
  7.  
  8. include 'emu8086.inc'
  9.  
  10. ORG     100h
  11.  
  12. ; skip variable declaration:
  13. JMP     START
  14.  
  15. ; declaration of variable:
  16. num  DW ?
  17.  
  18. START:
  19.  
  20. ; get first number:
  21. CALL    PTHIS
  22. DB 13, 10, 'Calculation Range: [-32768..32767]', 13, 10
  23. DB 13, 10, 'Enter first number: ', 0
  24.  
  25. CALL    scan_num
  26.  
  27. ; keep first number:
  28. MOV     num, CX
  29.  
  30. ; get second number:
  31. CALL    PTHIS
  32. msg2 DB 13, 10, 'Enter second number: ', 0
  33.  
  34. CALL    scan_num
  35.  
  36.  
  37. ; add numbers:
  38. ADD     num, CX
  39. JO      overflow
  40.  
  41.  
  42. ; print the result:
  43. CALL    PTHIS
  44. DB 13, 10, 'The sum is: ', 0
  45.  
  46. MOV     AX, num
  47. CALL    print_num
  48.  
  49. JMP     exit
  50.  
  51. ; process overlow error:
  52. overflow:
  53.    
  54.    PRINTN 'We have overflow!'
  55.  
  56.  
  57. exit:
  58.  
  59. RET
  60.  
  61. ;=================================
  62. ; here we define the functions
  63. ; from emu8086.inc
  64.  
  65. ; SCAN_NUM reads a
  66. ; number from the user and stores
  67. ; it in CX register.
  68.  
  69. DEFINE_SCAN_NUM
  70.  
  71. ; PRINT_NUM prints a signed
  72. ; number in AX.
  73. ; PRINT_NUM_UNS prints an unsigned
  74. ; number in AX (required by 
  75. ; PRINT_NUM):
  76.  
  77. DEFINE_PRINT_NUM
  78. DEFINE_PRINT_NUM_UNS
  79.  
  80. ; PTHIS prints NULL terminated
  81. ; string defined just after
  82. ; the CALL PTHIS instruction:
  83. DEFINE_PTHIS
  84.  
  85. ;=================================
  86. END
  87.